﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SIGERP_Entidades;
using SIGERP_Negocio;

namespace SIGERP_Presentacion
{
    public partial class frmCiudadAgregar : Form
    {
        ErrorProvider ep = new ErrorProvider();

        public frmCiudadAgregar()
        {
            InitializeComponent();
        }

        public frmCiudadAgregar(String ciudad)
        {
            InitializeComponent();
            txtCiudad.Text = ciudad;
        }

        private void frmCiudadAgregar_Load(object sender, EventArgs e)
        {
            List<Pais> paises = Paises.GetAll();
            foreach (Pais p in paises) {
                cmbPais.Items.Add(p);
            }
            cmbPais.Width = Utilities.adjustWidth(cmbPais);
        }

        private void btnGuardar_Click_1(object sender, EventArgs e)
        {
            ep.Clear();

            // Validar que los campos obligatorios no esten vacio
            if (txtCiudad.Text.Length == 0)
            { 
                ep.SetError(txtCiudad, "Debe ingresar el nombre de la ciudad.");
                return;
            }

            if (txtCodigoPostal.Text.Length == 0)
            { 
                ep.SetError(txtCodigoPostal, "Debe ingresar el codigo postal.");
                return;
            }

            if (esNumerico())
            { 
                ep.SetError(txtCodigoPostal, "Tiene que ser numerico");
                return;
            }

            if (cmbPais.SelectedItem == null)
            { 
                ep.SetError(cmbPais, "Debe seleccionar un pais.");
                return;
            }

            if (cmbProvincia.SelectedItem == null)
            { 
                ep.SetError(cmbProvincia, "Debe seleccionar una provincia.");
                return;
            }

            //Validar que no se haya ya ingresado la ciudad 
            Ciudad ciudad = new Ciudad();
            ciudad.descripcion = txtCiudad.Text.ToUpper();
            ciudad.cod_postal = Convert.ToInt32(txtCodigoPostal.Text);
            ciudad.provincia = (Provincia)cmbProvincia.SelectedItem;
            
            if (Ciudades.validarSiExiste(ciudad))
            {
                MessageBox.Show("La ciudad ingresada ya existe", Text, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);
            }
            else
            {
                agregarCiudad(ciudad);
            }          

            
        }

        private void agregarCiudad(Ciudad ciudad)
        {
            Ciudades.Agregar(ciudad);
            Close();
        }
        
        private void cmbPais_SelectedIndexChanged(object sender, EventArgs e)
        {
            cmbProvincia.Items.Clear();
            List<Provincia> provincias = Provincias.GetAllProvinciasPorPais((Pais)cmbPais.SelectedItem);
            foreach (Provincia p in provincias)
            {
                cmbProvincia.Items.Add(p);
            }
            cmbProvincia.Width = Utilities.adjustWidth(cmbProvincia);
        }

        private void btnCancelar_Click_1(object sender, EventArgs e)
        {
            Close();
        }

        private bool esNumerico()
        {
            bool rta = false;
            try
            {
                int aux = Convert.ToInt32(txtCodigoPostal.Text);
            }
            catch (Exception)
            {
                rta = true;
            }
            return rta;
        }

        private void toolStripAyuda_Click(object sender, EventArgs e)
        {
            Utilities.mostrarAyuda(this, (this.GetType().ToString() + ".htm").Replace("SIGERP_Presentacion.", ""));
        }
}}
